// noinspection JSUnresolvedReference
/**
* Field Google Map
*/
/* global jQuery, document, redux_change, redux, google */
(function ( $ ) {
'use strict';
redux.field_objects = redux.field_objects || {};
redux.field_objects.google_maps = redux.field_objects.google_maps || {};
/* LIBRARY INIT */
redux.field_objects.google_maps.init = function ( selector ) {
if ( ! selector ) {
selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' );
}
$( selector ).each(
function ( i ) {
let delayRender;
const el = $( this );
let parent = el;
if ( ! el.hasClass( 'redux-field-container' ) ) {
parent = el.parents( '.redux-field-container:first' );
}
if ( parent.is( ':hidden' ) ) {
return;
}
if ( parent.hasClass( 'redux-field-init' ) ) {
parent.removeClass( 'redux-field-init' );
} else {
return;
}
// Check for delay render, which is useful for calling a map
// render after JavaScript load.
delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) );
// API Key button.
redux.field_objects.google_maps.clickHandler( el );
// Init our maps.
redux.field_objects.google_maps.initMap( el, i, delayRender );
}
);
};
/* INIT MAP FUNCTION */
redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) {
let delayed;
let scrollWheel;
let streetView;
let mapType;
let address;
let defLat;
let defLong;
let defaultZoom;
let mapOptions;
let geocoder;
let g_autoComplete;
let g_LatLng;
let g_map;
let noLatLng = false;
// Pull the map class.
const mapClass = el.find( '.redux_framework_google_maps' );
const containerID = mapClass.attr( 'id' );
const autocomplete = containerID + '_autocomplete';
const canvas = containerID + '_map_canvas';
const canvasId = $( '#' + canvas );
const latitude = containerID + '_latitude';
const longitude = containerID + '_longitude';
// Add map index to data attr.
// Why, say we want to use delay_render,
// and want to init the map later on.
// You'd need the index number in the
// event of multiple map instances.
// This allows one to retrieve it
// later.
$( mapClass ).attr( 'data-idx', idx );
if ( true === delayRender ) {
return;
}
// Map has been rendered, no need to process again.
if ( $( '#' + containerID ).hasClass( 'rendered' ) ) {
return;
}
// If a map is set to delay render and has been initiated
// from another scrip, add the 'render' class so rendering
// does not occur.
// It messes things up.
delayed = Boolean( mapClass.data( 'delay-render' ) );
if ( true === delayed ) {
mapClass.addClass( 'rendered' );
}
// Create the autocomplete object, restricting the search
// to geographical location types.
g_autoComplete = await google.maps.importLibrary( 'places' );
g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} );
// Data bindings.
scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) );
streetView = Boolean( mapClass.data( 'street-view' ) );
mapType = Boolean( mapClass.data( 'map-type' ) );
address = mapClass.data( 'address' );
address = decodeURIComponent( address );
address = address.trim();
// Set default Lat/lng.
defLat = canvasId.data( 'default-lat' );
defLong = canvasId.data( 'default-long' );
defaultZoom = canvasId.data( 'default-zoom' );
// Eval whether to set maps based on lat/lng or address.
if ( '' !== address ) {
if ( '' === defLat || '' === defLong ) {
noLatLng = true;
}
} else {
noLatLng = false;
}
// Can't have empty values, or the map API will complain.
// Set default for the middle of the United States.
defLat = defLat ? defLat : 39.11676722061108;
defLong = defLong ? defLong : -100.47761000000003;
if ( noLatLng ) {
// If displaying a map based on an address.
geocoder = new google.maps.Geocoder();
// Set up Geocode and pass address.
geocoder.geocode(
{'address': address},
function ( results, status ) {
let latitude;
let longitude;
// Function results.
if ( status === google.maps.GeocoderStatus.OK ) {
// A good address was passed.
g_LatLng = results[0].geometry.location;
// Set map options.
mapOptions = {
center: g_LatLng,
zoom: defaultZoom,
streetViewControl: streetView,
mapTypeControl: mapType,
scrollwheel: scrollWheel,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR,
position: google.maps.ControlPosition.LEFT_BOTTOM
},
mapId: 'REDUX_GOOGLE_MAPS',
};
// Create map.
g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions );
// Get and set lat/long data.
latitude = el.find( '#' + containerID + '_latitude' );
latitude.val( results[0].geometry.location.lat() );
longitude = el.find( '#' + containerID + '_longitude' );
longitude.val( results[0].geometry.location.lng() );
redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID );
} else {
// No data found, alert the user.
alert( 'Geocode was not successful for the following reason: ' + status );
}
}
);
} else {
// If displaying map based on an lat/lng.
g_LatLng = new google.maps.LatLng( defLat, defLong );
// Set map options.
mapOptions = {
center: g_LatLng,
zoom: defaultZoom, // Start off far unless an item is selected, set by php.
streetViewControl: streetView,
mapTypeControl: mapType,
scrollwheel: scrollWheel,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR,
position: google.maps.ControlPosition.LEFT_BOTTOM
},
mapId: 'REDUX_GOOGLE_MAPS',
};
// Create the map.
g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions );
redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID );
}
};
redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) {
let markerTooltip;
let infoWindow;
let g_marker;
let geoAlert = mapClass.data( 'geo-alert' );
// Get HTML.
const input = document.getElementById( autocomplete );
// Set objects into the map.
g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input );
// Bind objects to the map.
g_autoComplete = new google.maps.places.Autocomplete( input );
g_autoComplete.bindTo( 'bounds', g_map );
// Get the marker tooltip data.
markerTooltip = mapClass.data( 'marker-tooltip' );
markerTooltip = decodeURIComponent( markerTooltip );
// Create infoWindow.
infoWindow = new google.maps.InfoWindow();
// Create marker.
g_marker = new google.maps.Marker(
{
position: g_LatLng,
map: g_map,
anchorPoint: new google.maps.Point( 0, - 29 ),
draggable: true,
title: markerTooltip,
animation: google.maps.Animation.DROP
}
);
geoAlert = decodeURIComponent( geoAlert );
// Place change.
google.maps.event.addListener(
g_autoComplete,
'place_changed',
function () {
let place;
let address;
let markerTooltip;
infoWindow.close();
// Get place data.
place = g_autoComplete.getPlace();
// Display alert if something went wrong.
if ( ! place.geometry ) {
window.alert( geoAlert );
return;
}
console.log( place.geometry.viewport );
// If the place has a geometry, then present it on a map.
if ( place.geometry.viewport ) {
g_map.fitBounds( place.geometry.viewport );
} else {
g_map.setCenter( place.geometry.location );
g_map.setZoom( 17 ); // Why 17? Because it looks good.
}
markerTooltip = mapClass.data( 'marker-tooltip' );
markerTooltip = decodeURIComponent( markerTooltip );
// Set the marker icon.
g_marker = new google.maps.Marker(
{
position: g_LatLng,
map: g_map,
anchorPoint: new google.maps.Point( 0, - 29 ),
title: markerTooltip,
clickable: true,
draggable: true,
animation: google.maps.Animation.DROP
}
);
// Set marker position and display.
g_marker.setPosition( place.geometry.location );
g_marker.setVisible( true );
// Form array of address components.
address = '';
if ( place.address_components ) {
address = [( place.address_components[0] && place.address_components[0].short_name || '' ),
( place.address_components[1] && place.address_components[1].short_name || '' ),
( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' );
}
// Set the default marker info window with address data.
infoWindow.setContent( '
' + place.name + ' ' + address );
infoWindow.open( g_map, g_marker );
// Run Geolocation.
redux.field_objects.google_maps.geoLocate( g_autoComplete );
// Fill in address inputs.
redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete );
}
);
// Marker drag.
google.maps.event.addListener(
g_marker,
'drag',
function ( event ) {
document.getElementById( latitude ).value = event.latLng.lat();
document.getElementById( longitude ).value = event.latLng.lng();
}
);
// End marker drag.
google.maps.event.addListener(
g_marker,
'dragend',
function () {
redux_change( el.find( '.redux_framework_google_maps' ) );
}
);
// Zoom Changed.
g_map.addListener(
'zoom_changed',
function () {
el.find( '.google_m_zoom_input' ).val( g_map.getZoom() );
}
);
// Marker Info Window.
infoWindow = new google.maps.InfoWindow();
google.maps.event.addListener(
g_marker,
'click',
function () {
const marker_info = containerID + '_marker_info';
const infoValue = document.getElementById( marker_info ).value;
if ( '' !== infoValue ) {
infoWindow.setContent( infoValue );
infoWindow.open( g_map, g_marker );
}
}
);
};
/* FILL IN ADDRESS FUNCTION */
redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) {
// Set variables.
const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' );
// What if someone only wants city, or state, ect...
// gotta do it this way to check for the address!
// Need to check each of the returned components to see what is returned.
const componentForm = {
street_number: 'short_name',
route: 'long_name',
locality: 'long_name',
administrative_area_level_1: 'short_name',
country: 'long_name',
postal_code: 'short_name'
};
// Get the place details from the autocomplete object.
const place = g_autoComplete.getPlace();
let component;
let i;
let addressType;
let _d_addressType;
let val;
let len;
document.getElementById( latitude ).value = place.geometry.location.lat();
document.getElementById( longitude ).value = place.geometry.location.lng();
for ( component in componentForm ) {
if ( componentForm.hasOwnProperty( component ) ) {
// Push in the dynamic form element ID again.
component = containerID + '_' + component;
// Assign to proper place.
document.getElementById( component ).value = '';
document.getElementById( component ).disabled = false;
}
}
// Get each component of the address from the place details
// and fill the corresponding field on the form.
len = place.address_components.length;
for ( i = 0; i < len; i += 1 ) {
addressType = place.address_components[i].types[0];
if ( componentForm[addressType] ) {
// Push in the dynamic form element ID again.
_d_addressType = containerID + '_' + addressType;
// Get the original.
val = place.address_components[i][componentForm[addressType]];
// Assign to proper place.
document.getElementById( _d_addressType ).value = val;
}
}
};
redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) {
if ( navigator.geolocation ) {
navigator.geolocation.getCurrentPosition(
function ( position ) {
const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude );
const circle = new google.maps.Circle(
{
center: geolocation,
radius: position.coords.accuracy
}
);
g_autoComplete.setBounds( circle.getBounds() );
}
);
}
};
/* API BUTTON CLICK HANDLER */
redux.field_objects.google_maps.clickHandler = function ( el ) {
// Find the API Key button and react on click.
el.find( '.google_m_api_key_button' ).on(
'click',
function () {
// Find message wrapper.
const wrapper = el.find( '.google_m_api_key_wrapper' );
if ( wrapper.is( ':visible' ) ) {
// If the wrapper is visible, close it.
wrapper.slideUp(
'fast',
function () {
el.find( '#google_m_api_key_input' ).trigger( 'focus' );
}
);
} else {
// If the wrapper is visible, open it.
wrapper.slideDown(
'medium',
function () {
el.find( '#google_m_api_key_input' ).trigger( 'focus' );
}
);
}
}
);
el.find( '.google_m_autocomplete' ).on(
'keypress',
function ( e ) {
if ( 13 === e.keyCode ) {
e.preventDefault();
}
}
);
// Auto select autocomplete contents,
// since Google doesn't do this inherently.
el.find( '.google_m_autocomplete' ).on(
'click',
function ( e ) {
$( this ).trigger( 'focus' );
$( this ).trigger( 'select' );
e.preventDefault();
}
);
};
} )( jQuery );
LocoWin Online Casino: Speel Nu en Geniet van Onze Prima Gamingervaring! – Orchid Group Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54
Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54
5 Grondjes om je Vermaak te Vinden op LocoWin Online Casino
Zoek je naar grondige onderhoud en vermaak in een online casino? LocoWin is de plek om te zijn! Met een uitgebreid assortiment van 5 Grondjes om je Vermaak te Vinden, hebben we iets voor iedereen. Onze spellen zijn gemaakt door de beste leveranciers van de industrie, waardoor je ervan kan genieten van hoge kwaliteit graphics en geluiden. Probeer onze populaire online gokkasten, of kies voor een van onze vele tafelspellen, zoals blackjack en roulette. En als je op zoek bent naar iets anders, kijk dan eens naar onze live dealer spellen. Met vriendelijke en professionele dealers zorgen we ervoor dat je je op de juiste plek voelst. En vergeet niet om onze vele bonussen en promoties te checken, die je helpen om je bankroll te vergroten. Kom vandaag nog aan tafel en ontdek hoe je je vermaak kunt vinden op LocoWin Online Casino!
LocoWin Online Casino: De Beste Gamingervaring in Nederland?
Ben jullie op zoek naar een spannende online casino ervaring in Nederland? LocoWin Online Casino is de plek om te zijn! Met een uitgebreid assortiment van casino spellen, zoals gokkasten, live dealer spellen en tafelspellen, is er voor iedereen iets bij LocoWin. Het casino is gemakkelijk te gebruiken en biedt veilige en betrouwbare betaling methoden. Bovendien hebben ze een uitstekende klantenservice en regelmatig promoties en bonussen. Probeer nu LocoWin Online Casino uit en ontdek de beste gamingervaring in Nederland!
Spelerservaring en Veiligheid: Het Belang van Een Goed Online Casino
Spelerservaring en veiligheid zijn belangrijke aspecten bij het kiezen van een online casino in Nederland. Een goed online casino biedt een betrouwbare en veilige spelomgeving, waar u uw favoriete casino-spellen kunt spelen zonder zich zorgen te moeten maken over fraude of andere veiligheidsrisico’s. Een goed online casino investereert in de laatste technologie en beveiligingsmaatregelen om de persoonlijke en financiële gegevens van zijn spelers te beschermen. Het is ook belangrijk dat het online casino over een goede klantendienst beschikt, waar u tijdig en professioneel advies kunt krijgen bij eventuele problemen of vragen.
Een goed online casino biedt ook een breed scala aan spellen, van klassieke tafelspellen als blackjack en roulette tot moderne video slots en live dealer games. Dit zorgt ervoor dat elke speler zijn of haar favoriete spel kan vinden en geniet van een unieke en spannende spelervaring.
Een goed online casino is tevens betrouwbaar en eerlijk in zijn bedrijfsvoering en betaalt uit betrouwbaar en op tijd. Het is belangrijk dat u kiest voor een online casino met een goede reputatie en een betrouwbare licentie, zoals die van de Malta Gaming Authority of de UK Gambling Commission.
Een goed online casino biedt ook promoties en bonussen aan om de spelervaring nog aantrekkelijker te maken. Dit kan gaan van een welcome bonus voor nieuwe spelers tot free spins en cashback bonussen voor bestaande spelers.
Ten slotte is het belangrijk dat een goed online casino zich richt op verantwoord spel en spelers zichzelf kan instellen met limieten voor het tijdsbesteding en het bedrag dat ze willen inzetten. Hierdoor wordt voorkomen dat spelers verslaafd raken en financiële problemen ondervinden.
LocoWin Online Casino: Speel en Geniet van Onze Grote Spelkeuze
Beleef de opwindende wereld van online casino’s met LocoWin! Geniet van onze grote spelkeuze, met honderden spellen die u kunt spelen. Probeer uw geluk bij onze online gokautomaten, waar u kunt spelen met echte croupiers in onze live casino’s. Voor de liefhebbers van kaartspellen hebben we een groot aantal varianten van poker, blackjack en baccarat. En als je op zoek bent naar iets anders, kijk dan eens naar onze speciale spellen zoals keno en scratchcards. Registreer je nu en ontvang een warm welkom bij LocoWin Online Casino!
Wat Maakt LocoWin Online Casino uniek in de Nederlandse Casino Markt?
Wat maakt LocoWin Online Casino uniek in de Nederlandse Casino Markt? 1. Een uitgebreid aanbod van casino- en gokspellen, inclusief unieke en exclusieve spellen.
2. Snelle en betrouwbare betalingen met een verscheidenheid aan Nederlandse betalingsmethoden.
3. Persoonlijke en VIP-beloningsprogramma’s met exclusieve bonussen en promoties.
4. Een mobiele-vriendelijke website en app, ontworpen voor optimaal spelcomfort.
5. Een klantgerichte benadering met 24/7 klantondersteuning in het Nederlands.
6. Een goklicentie van de Nederlandse Kansspelautoriteit, garanderend veilig en eerlijk spel.
7. Regelmatig nieuwe spellen en functies, om je ervaring verscheiden en spannend te houden.
Review 1:
Ik ben Anna, 32 jaar oud en ben een grote fan van LocoWin Online Casino. Het is makkelijk te gebruiken en er is altijd een verscheidenheid aan spellen beschikbaar. De uitbetalingen zijn altijd tijdig en de klantenservice is altijd bereid om te helpen als je hulp nodig hebt. Ik kan LocoWin Online Casino alleen maar aanraden!
Review 2:
Hoi, ik ben Tom, 28 jaar en ik speel al een tijdje op LocoWin Online Casino. Het is een geweldige site met een geweldige selectie aan spellen. De grafische kwaliteit is ook erg goed en de uitbetalingen zijn altijd snel en betrouwbaar. Ik ben altijd blij met de service en de hulp die ik krijg van het team. LocoWin Online Casino is echt de beste!
Review 3:
Hallo, ik ben Sara, 35 jaar oud en ik ben een groot fan van LocoWin Online Casino. Het is mijn favoriete online casino omdat het gemakkelijk te gebruiken is en er altijd nieuwe spellen worden toegevoegd. De klantenservice is altijd beschikbaar en behandelt je altijd vriendelijk. LocoWin Casino Ik kan LocoWin Online Casino alleen maar aanraden voor iedereen die op zoek is naar een betrouwbaar en pretensgevend online casino!
Vragen over LocoWin Online Casino: Speel Nu en Geniet van Onze Prima Gamingervaring!
1. Wat is LocoWin Online Casino? LocoWin is een online casino waar u een prima gamingervaring kunt ervaren met een groot aanbod aan spellen.
2. Hoe kan ik bij LocoWin Online Casino spelen? U kan gemakkelijk een account aanmaken en direct beginnen met spelen door een deposit te doen.
3. Welke spellen zijn beschikbaar op LocoWin Online Casino? LocoWin biedt een verscheidenheid aan spellen, variërend van klassieke slots tot live dealer spellen.
4. Is LocoWin Online Casino betrouwbaar? Ja, LocoWin is een betrouwbare online casino met een geld terug garantie en een goede klantenservice.